package org.jiajie.designpatterndemo.template;

/**
 * 创建一个定义操作的Game抽象类，
 * 其中，模版方法设置为final，这样它就不会被重写。
 *
 * @author jay
 */
public abstract class Game {
    abstract void initialize();
    abstract void startPlay();
    abstract void endPlay();

    /**
     * 模版
     */
    public final void play(){
        // 初始化游戏
        initialize();
        // 开始游戏
        startPlay();
        // 结束游戏
        endPlay();
    }
}
